package com.benyanyi.loglib

import android.util.Log
import org.json.JSONObject
import org.json.JSONArray
import org.json.JSONException

/**
 * @author myLove
 * @time 2017/10/31 10:42
 * @e-mail ben@yanyi.red
 * @overview
 */
internal object JsonLog {
    fun printJson(tag: String, msg: String, headString: String) {
        var message: String
        val str1 = "{"
        val str2 = "["
        message = try {
            if (msg.startsWith(str1)) {
                val jsonObject = JSONObject(msg)
                jsonObject.toString(Jlog.JSON_INDENT)
            } else if (msg.startsWith(str2)) {
                val jsonArray = JSONArray(msg)
                jsonArray.toString(Jlog.JSON_INDENT)
            } else {
                msg
            }
        } catch (e: JSONException) {
            msg
        }
        LogUtil.printLine(tag, true)
        message = headString + Jlog.LINE_SEPARATOR + message
        val lines = message.split(Jlog.LINE_SEPARATOR!!.toRegex()).toTypedArray()
        for (line in lines) {
            Log.d(tag, "║ $line")
            if (!Jlog.mConfig.isWrite) {
                return
            }
            if (!Jlog.mConfig.isShowWrite && Jlog.mConfig.isShowLog) {
                return
            }
            BaseLog.writeLog(tag, "║ $line")
        }
        LogUtil.printLine(tag, false)
    }
}